import Axios from 'axios'
// 用axios的message来提示接口响应状况
import { Message } from '@hi-ui/hiui'

const BASE_URL = process.env.NODE_ENV === 'production' ? '' : 'http://127.0.0.1:8080/api' //请求接口url 如果不配置 则默认访问链接地址
const TIME_OUT = 20000 // 接口超时时间

const instance = Axios.create({
    baseURL: BASE_URL,
    timeout: TIME_OUT
})

// 添加请求拦截器
instance.interceptors.request.use(
    (config) => {
        return config
    },
    (error) => {
        return Promise.reject(error)
    }
)
// 添加响应拦截器
instance.interceptors.response.use(
    (response) => {
        // 如果返回的类型为二进制文件类型
        if (response.config.responseType === 'blob') {
            if (response.status !== 200) {
                Message.open({
                    title: '请求失败' + response.status,
                    type: "error",
                })
                return Promise.reject()
            } else if (!response.headers['content-disposition']) {
                Message.open({
                    title: '暂无接口访问权限',
                    type: "error",
                })
                return Promise.reject()
            }
            return response
        } else {
            // 如果接口请求失败
            if (response.data.code && response.data.code !== 200 && response.data.code !== 0) {
                let errMsg = response.data.message || '系统错误'
                return Promise.reject(errMsg)
            }
            return response.data
        }
    },
    (error) => {
        return Promise.reject(error)
    }
)

export default instance